[INFO] cloning repository https://github.com/afdaliable/quiz-backend
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/afdaliable/quiz-backend" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fafdaliable%2Fquiz-backend", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fafdaliable%2Fquiz-backend'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 30108a2704bf9a9e48adb4211d194e0aa2025702
[INFO] fixing afdaliable/quiz-backend against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fafdaliable%2Fquiz-backend" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/afdaliable/quiz-backend
[INFO] finished tweaking git repo https://github.com/afdaliable/quiz-backend
[INFO] tweaked toml for git repo https://github.com/afdaliable/quiz-backend written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/afdaliable/quiz-backend on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/afdaliable/quiz-backend already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb
[INFO] running `Command { std: "docker" "start" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.159
[INFO] [stderr]    Compiling autocfg v1.4.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]     Checking pin-project-lite v0.2.14
[INFO] [stderr]     Checking bytes v1.7.2
[INFO] [stderr]     Checking log v0.4.22
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]     Checking smallvec v1.13.2
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]     Checking itoa v1.0.11
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]    Compiling libm v0.2.8
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]    Compiling lock_api v0.4.12
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]    Compiling cc v1.1.22
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking allocator-api2 v0.2.18
[INFO] [stderr]     Checking const-oid v0.9.6
[INFO] [stderr]     Checking equivalent v1.0.1
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]     Checking ryu v1.0.18
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]     Checking tinyvec v1.8.0
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]     Checking cpufeatures v0.2.14
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling base64ct v1.6.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]    Compiling openssl v0.10.69
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]     Checking encoding_rs v0.8.34
[INFO] [stderr]    Compiling native-tls v0.2.13
[INFO] [stderr]     Checking powerfmt v0.2.0
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling time-macros v0.2.18
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]    Compiling der v0.7.9
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking http v1.2.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking regex-syntax v0.8.4
[INFO] [stderr]     Checking local-waker v0.1.4
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking regex-automata v0.4.7
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking adler2 v2.0.0
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking miniz_oxide v0.8.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling tokio v1.40.0
[INFO] [stderr]     Checking regex v1.10.6
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]     Checking brotli-decompressor v4.0.1
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking actix-utils v3.0.1
[INFO] [stderr]     Checking actix-service v2.0.2
[INFO] [stderr]    Compiling bytestring v1.3.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]     Checking crc32fast v1.4.2
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling crc-catalog v2.4.0
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling crc v3.2.1
[INFO] [stderr]     Checking zstd v0.13.2
[INFO] [stderr]    Compiling sqlformat v0.2.6
[INFO] [stderr]    Compiling chrono v0.4.39
[INFO] [stderr]     Checking flate2 v1.0.34
[INFO] [stderr]    Compiling tokio-stream v0.1.16
[INFO] [stderr]    Compiling url v2.5.2
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]     Checking brotli v6.0.0
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling crossbeam-queue v0.3.11
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking local-channel v0.1.5
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling event-listener v2.5.3
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling linux-raw-sys v0.4.14
[INFO] [stderr]    Compiling unicode-properties v0.1.2
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking language-tags v0.3.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling whoami v1.5.2
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]     Checking ipnet v2.11.0
[INFO] [stderr]    Compiling thiserror v2.0.11
[INFO] [stderr]    Compiling fastrand v2.1.1
[INFO] [stderr]     Checking impl-more v0.1.6
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling rust-embed-utils v8.6.0
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking rustls-pki-types v1.10.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking rustls-pemfile v1.0.4
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling parse-size v1.1.0
[INFO] [stderr]     Checking webpki-roots v0.25.4
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking pem v3.0.4
[INFO] [stderr]     Checking socket2 v0.4.10
[INFO] [stderr]    Compiling utoipa-swagger-ui v6.0.0
[INFO] [stderr]     Checking is-terminal v0.4.16
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking sha1_smol v1.0.1
[INFO] [stderr]     Checking arc-swap v1.7.1
[INFO] [stderr]     Checking humantime v2.2.0
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling hashlink v0.8.4
[INFO] [stderr]    Compiling indexmap v2.5.0
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking actix-rt v2.10.0
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]    Compiling rsa v0.9.6
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling thiserror-impl v2.0.11
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking actix-server v2.5.0
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]    Compiling rust-embed-impl v8.6.0
[INFO] [stderr]    Compiling utoipa-gen v4.3.1
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking combine v4.6.7
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking rust-embed v8.6.0
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling actix-multipart-derive v0.6.1
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking bitflags v2.6.0
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking actix-codec v0.5.2
[INFO] [stderr]     Checking h2 v0.4.7
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]     Checking hyper v1.5.2
[INFO] [stderr]    Compiling sqlx-core v0.7.4
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking actix-http v3.9.0
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]    Compiling tempfile v3.12.0
[INFO] [stderr]    Compiling sqlx-mysql v0.7.4
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking pin-project v1.1.10
[INFO] [stderr]     Checking tokio-retry v0.3.0
[INFO] [stderr]     Checking simple_asn1 v0.6.3
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking reqwest v0.12.12
[INFO] [stderr]    Compiling sqlx-macros-core v0.7.4
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking serde_plain v1.0.2
[INFO] [stderr]     Checking supabase-auth v0.9.2
[INFO] [stderr]     Checking oauth2 v4.4.2
[INFO] [stderr]     Checking jsonwebtoken v9.3.0
[INFO] [stderr]     Checking uuid v1.10.0
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking redis v0.24.0
[INFO] [stderr]     Checking actix-web v4.9.0
[INFO] [stderr]     Checking actix-cors v0.6.5
[INFO] [stderr]     Checking actix-multipart v0.6.2
[INFO] [stderr]     Checking utoipa v4.2.3
[INFO] [stderr]    Compiling sqlx-macros v0.7.4
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking quiz-backend v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/controller/admin_soal_controller.rs (11 fixes)
[INFO] [stderr]        Fixed src/controller/question_comment_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/controller/soal_controller.rs (6 fixes)
[INFO] [stderr]        Fixed src/controller/admin_kategori_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/controller/premium_controller.rs (19 fixes)
[INFO] [stderr]        Fixed src/controller/admin_user_controller.rs (7 fixes)
[INFO] [stderr]        Fixed src/controller/admin_analytics_controller.rs (4 fixes)
[INFO] [stderr]        Fixed src/controller/payment_controller.rs (7 fixes)
[INFO] [stderr]        Fixed src/controller/subscription_controller.rs (6 fixes)
[INFO] [stderr]        Fixed src/controller/bookmark_controller.rs (4 fixes)
[INFO] [stderr]        Fixed src/controller/user_controller.rs (7 fixes)
[INFO] [stderr]        Fixed src/controller/kategori_controller.rs (1 fix)
[INFO] [stderr]        Fixed src/controller/admin_packages_controller.rs (8 fixes)
[INFO] [stderr]        Fixed src/controller/license_controller.rs (3 fixes)
[INFO] [stderr]        Fixed src/controller/public_profile_controller.rs (4 fixes)
[INFO] [stderr]        Fixed src/controller/auth_controller.rs (5 fixes)
[INFO] [stderr]        Fixed src/service/redis_service.rs (5 fixes)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/soal_controller.rs:83:114
[INFO] [stdout]     |
[INFO] [stdout]  80 |         let mut con = redis_pool.quiz_cache().as_ref().clone();
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `con` calls a custom destructor
[INFO] [stdout]     |             `con` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  83 |         match RedisService::get_cached_quiz_by_key::<crate::model::PaketSoalResponse>(&mut con, &cache_key_hash).await {
[INFO] [stdout]     |                                                                                                                  ^^^^^
[INFO] [stdout]     |                                                                                                                  |
[INFO] [stdout]     |                                                                                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 106 |     } else {
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/soal_controller.rs:241:23
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 match app_state.context.premium_quiz_access.check_user_access_to_quiz(user_id, response.paket_soal_id).await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                                                                                                |
[INFO] [stdout]     |                       |                                                                                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |                                                                                                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                                                                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                                                                                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 245 |                     Err(e) => {
[INFO] [stdout]     |                         -
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `e` calls a custom destructor
[INFO] [stdout]     |                         `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 250 |             } else {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/controller/auth_controller.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |         match users_dao.username_exists(&candidate).await {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |               |                                     |
[INFO] [stdout]    |               |                                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]    |               |                                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |               |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |               |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]    |               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |               `__awaitee` calls a custom destructor
[INFO] [stdout]    |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 46 |             Ok(false) => {
[INFO] [stdout] 47 |                 let _ = users_dao.set_username_if_null(user_id, &candidate).await;
[INFO] [stdout]    |                         ---------------------------------------------------------
[INFO] [stdout]    |                         |                                                   |
[INFO] [stdout]    |                         |                                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]    |                         |                                                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 52 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/premium_controller.rs:173:41
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 if let Ok(Some(plan)) = data.context.premium_plans.get_premium_plan_by_id(subscription.plan_id).await {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                         |                                                                       |
[INFO] [stdout]     |                                         |                                                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                         |                                                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                         |                                                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                         |                                                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/payment_controller.rs:538:11
[INFO] [stdout]     |
[INFO] [stdout] 425 |       let mut transaction_result = data.context.payment_transactions.get_payment_transaction_by_transaction_id(transaction_id).await;
[INFO] [stdout]     |           ----------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `transaction_result` calls a custom destructor
[INFO] [stdout]     |           `transaction_result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 538 |       match data.context.payment_transactions.update_payment_status(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 539 | |         transaction_id,
[INFO] [stdout] 540 | |         status.clone(),
[INFO] [stdout] 541 | |         payment_method,
[INFO] [stdout] 542 | |         Some(&webhook_data),
[INFO] [stdout] 543 | |     ).await {
[INFO] [stdout]     | |       ----^
[INFO] [stdout]     | |       |   |
[INFO] [stdout]     | |_______|___this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |         |   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 580 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `transaction_result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/payment_controller.rs:543:7
[INFO] [stdout]     |
[INFO] [stdout] 425 |     let mut transaction_result = data.context.payment_transactions.get_payment_transaction_by_transaction_id(transaction_id).await;
[INFO] [stdout]     |         ----------------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `transaction_result` calls a custom destructor
[INFO] [stdout]     |         `transaction_result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 543 |     ).await {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 580 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `transaction_result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/bookmark_controller.rs:428:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let rows = sqlx::query(&main_sql)
[INFO] [stdout]     |         ----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `rows` calls a custom destructor
[INFO] [stdout]     |         `rows` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 428 |     HttpResponse::Ok().json(BookmarkListResponse {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 436 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `rows` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `rows` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:634:41
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |        |                |
[INFO] [stdout]     |                                |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `chunk` calls a custom destructor
[INFO] [stdout]     |                                `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 635 |                     file_content.extend_from_slice(&chunk);
[INFO] [stdout] 636 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:627:33
[INFO] [stdout]      |
[INFO] [stdout]  627 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------    ^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |            |                  |
[INFO] [stdout]      |                    |            |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |            |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                    |            up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  634 |                 while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                -----                     -----
[INFO] [stdout]      |                                |                         |
[INFO] [stdout]      |                                |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                `chunk` calls a custom destructor
[INFO] [stdout]      |                                `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  640 |                     return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                            --------------------------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                            `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  649 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  656 |                 match csv_service.parse_csv_preview(csv_content).await {
[INFO] [stdout]      |                       ------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `__awaitee` calls a custom destructor
[INFO] [stdout]      |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  657 |                     Ok(preview) => {
[INFO] [stdout]  658 |                         return HttpResponse::Ok().json(preview);
[INFO] [stdout]      |                                ------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  661 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  668 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:720:45
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------                       -----
[INFO] [stdout]      |                    |                               |
[INFO] [stdout]      |                    |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |        |                |
[INFO] [stdout]      |                                    |        |                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |        |                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout]  721 |                         file_content.extend_from_slice(&chunk);
[INFO] [stdout]  722 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                    |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:720:45
[INFO] [stdout]     |
[INFO] [stdout] 720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                    |        |                |
[INFO] [stdout]     |                                    |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `chunk` calls a custom destructor
[INFO] [stdout]     |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 721 |                         file_content.extend_from_slice(&chunk);
[INFO] [stdout] 722 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:744:45
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------                       -----
[INFO] [stdout]      |                    |                               |
[INFO] [stdout]      |                    |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |        |                |
[INFO] [stdout]      |                                    |        |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                    |        |                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  745 |                         options_content.extend_from_slice(&chunk);
[INFO] [stdout]  746 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:744:45
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                    |        |                |
[INFO] [stdout]     |                                    |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `chunk` calls a custom destructor
[INFO] [stdout]     |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 745 |                         options_content.extend_from_slice(&chunk);
[INFO] [stdout] 746 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:712:33
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------    ^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |            |                  |
[INFO] [stdout]      |                    |            |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |            |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                    |            up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  726 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  735 |                             return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                    --------------------------
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |                         `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                    `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  757 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:564:23
[INFO] [stdout]     |
[INFO] [stdout] 553 |           let exists = sqlx::query_scalar::<_, i64>(
[INFO] [stdout]     |  _____________------___-
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `exists` calls a custom destructor
[INFO] [stdout]     | |             `exists` will be dropped later as of Edition 2024
[INFO] [stdout] 554 | |             "SELECT COUNT(*) FROM dbquizapp.paket_soal_items WHERE paket_soal_id = ? AND soal_id = ?"
[INFO] [stdout] 555 | |         )
[INFO] [stdout] 556 | |         .bind(package_id)
[INFO] [stdout] 557 | |         .bind(question_id)
[INFO] [stdout] 558 | |         .fetch_one(&*data.context.soal.pool)
[INFO] [stdout] 559 | |         .await;
[INFO] [stdout]     | |          -----
[INFO] [stdout]     | |          |   |
[INFO] [stdout]     | |__________|___`__awaitee` calls a custom destructor
[INFO] [stdout]     |            |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 564 |                   match sqlx::query(
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout] 565 | |                     "INSERT INTO dbquizapp.paket_soal_items (paket_soal_id, soal_id) VALUES (?, ?)"
[INFO] [stdout] 566 | |                 )
[INFO] [stdout] 567 | |                 .bind(package_id)
[INFO] [stdout] 568 | |                 .bind(question_id)
[INFO] [stdout] 569 | |                 .execute(&*data.context.soal.pool)
[INFO] [stdout] 570 | |                 .await
[INFO] [stdout]     | |                  ----^
[INFO] [stdout]     | |__________________|___|
[INFO] [stdout]     | |__________________|___this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |__________________|___up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |__________________|___this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 573 | |                     Err(e) => println!("Error adding question {} to package: {:?}", question_id, e),
[INFO] [stdout]     | |                         -
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `e` calls a custom destructor
[INFO] [stdout]     | |                         `e` will be dropped later as of Edition 2024
[INFO] [stdout] 574 | |                 }
[INFO] [stdout] 575 | |             }
[INFO] [stdout]     | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 579 | |             Err(e) => {
[INFO] [stdout]     | |                 -
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `exists` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_paket_soal_items_controller.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 195 |           let exists = sqlx::query(check_query)
[INFO] [stdout]     |  _____________------___-
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `exists` calls a custom destructor
[INFO] [stdout]     | |             `exists` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | |             .bind(paket_soal_id)
[INFO] [stdout] 197 | |             .bind(soal_id)
[INFO] [stdout] 198 | |             .fetch_optional(&mut *tx)
[INFO] [stdout] 199 | |             .await;
[INFO] [stdout]     | |              -----
[INFO] [stdout]     | |              |   |
[INFO] [stdout]     | |______________|___`__awaitee` calls a custom destructor
[INFO] [stdout]     |                |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 209 |                   match sqlx::query(insert_query)
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout] 210 | |                     .bind(paket_soal_id)
[INFO] [stdout] 211 | |                     .bind(soal_id)
[INFO] [stdout] 212 | |                     .execute(&mut *tx)
[INFO] [stdout] 213 | |                     .await
[INFO] [stdout]     | |                      ----^
[INFO] [stdout]     | |______________________|___|
[INFO] [stdout]     | |______________________|___this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |______________________|___up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |______________________|___this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                        |   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                        up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 216 | |                     Err(err) => {
[INFO] [stdout]     | |                         ---
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `err` calls a custom destructor
[INFO] [stdout]     | |                         `err` will be dropped later as of Edition 2024
[INFO] [stdout] 217 | |                         eprintln!("Error inserting mapping: {}", err);
[INFO] [stdout] 218 | |                         let _ = tx.rollback().await;
[INFO] [stdout]     | |                                 -------------------
[INFO] [stdout]     | |                                 |             |
[INFO] [stdout]     | |                                 |             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                 |             `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 219 | |                         return Ok(HttpResponse::InternalServerError().json("Failed to create mapping"));
[INFO] [stdout]     | |                                   -----------------------------------
[INFO] [stdout]     | |                                   |
[INFO] [stdout]     | |                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     | |                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |             }
[INFO] [stdout]     | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `exists` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `exists` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     let basic_stats = sqlx::query_as::<_, BasicUserStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 246 |     HttpResponse::Ok().json(user_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 247 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 270 |     let basic_stats = sqlx::query_as::<_, BasicSessionStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 368 |     HttpResponse::Ok().json(session_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 369 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:509:5
[INFO] [stdout]     |
[INFO] [stdout] 392 |     let basic_stats = sqlx::query_as::<_, BasicRevenueStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 431 |     let subscription_stats = sqlx::query_as::<_, SubscriptionStats>(
[INFO] [stdout]     |         ------------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `subscription_stats` calls a custom destructor
[INFO] [stdout]     |         `subscription_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 509 |     HttpResponse::Ok().json(revenue_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 510 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `subscription_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/internal_soal_controller.rs:93:15
[INFO] [stdout]     |
[INFO] [stdout]  93 |         match data.context.soal.create_soal(question).await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |               |                                       |
[INFO] [stdout]     |               |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               |                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  94 |             Ok(_) => success_count += 1,
[INFO] [stdout]  95 |             Err(e) => {
[INFO] [stdout]     |                 -
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `e` calls a custom destructor
[INFO] [stdout]     |                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 100 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/subscription_controller.rs:438:5
[INFO] [stdout]      |
[INFO] [stdout]  345 |     let midtrans = make_midtrans_service(&data);
[INFO] [stdout]      |         --------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `midtrans` calls a custom destructor
[INFO] [stdout]      |         `midtrans` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  438 |     HttpResponse::Ok().json(serde_json::json!({
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  443 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `midtrans` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.30/src/oneshot.rs:387:1
[INFO] [stdout]      |
[INFO] [stdout]  387 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.30/src/oneshot.rs:387:1
[INFO] [stdout]      |
[INFO] [stdout]  387 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.40.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-0.3.2/src/lib.rs:238:9
[INFO] [stdout]      |
[INFO] [stdout]  238 |           impl Drop for $owned {
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.69/src/ssl/mod.rs:1776:1
[INFO] [stdout]      |
[INFO] [stdout] 1776 | / foreign_type_and_impl_send_sync! {
[INFO] [stdout] 1777 | |     type CType = ffi::SSL_CTX;
[INFO] [stdout] 1778 | |     fn drop = ffi::SSL_CTX_free;
[INFO] [stdout] ...    |
[INFO] [stdout] 1789 | |     pub struct SslContextRef;
[INFO] [stdout] 1790 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:52:91
[INFO] [stdout]     |
[INFO] [stdout]  51 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout]  52 |             if let Err(e) = RedisService::store_session(&mut con, &token, &redis_session).await {
[INFO] [stdout]     |                                                                                           ^^^^^
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:78:90
[INFO] [stdout]     |
[INFO] [stdout]  77 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout]  78 |             if let Ok(Some(_redis_session)) = RedisService::get_session(&mut con, token).await {
[INFO] [stdout]     |                                                                                          ^^^^^
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  91 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:127:75
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout] 127 |             if let Err(e) = RedisService::delete_session(&mut con, token).await {
[INFO] [stdout]     |                                                                           ^^^^^
[INFO] [stdout]     |                                                                           |
[INFO] [stdout]     |                                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 130 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/quiz_session_dao.rs:278:58
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let mut params: Vec<Box<dyn sqlx::Encode<'_, sqlx::MySql> + Send + 'static>> = vec![
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `params` calls a custom destructor
[INFO] [stdout]     |             `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 278 |         self.get_quiz_session_by_id(session_id, user_id).await
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 279 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `params` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/soal_controller.rs:83:114
[INFO] [stdout]     |
[INFO] [stdout]  80 |         let mut con = redis_pool.quiz_cache().as_ref().clone();
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `con` calls a custom destructor
[INFO] [stdout]     |             `con` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  83 |         match RedisService::get_cached_quiz_by_key::<crate::model::PaketSoalResponse>(&mut con, &cache_key_hash).await {
[INFO] [stdout]     |                                                                                                                  ^^^^^
[INFO] [stdout]     |                                                                                                                  |
[INFO] [stdout]     |                                                                                                                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                                                  up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 106 |     } else {
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/soal_controller.rs:241:23
[INFO] [stdout]     |
[INFO] [stdout] 241 |                 match app_state.context.premium_quiz_access.check_user_access_to_quiz(user_id, response.paket_soal_id).await {
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                       |                                                                                                |
[INFO] [stdout]     |                       |                                                                                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                       |                                                                                                up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       |                                                                                                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                       |                                                                                                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                       this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                       up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                       `__awaitee` calls a custom destructor
[INFO] [stdout]     |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 245 |                     Err(e) => {
[INFO] [stdout]     |                         -
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         `e` calls a custom destructor
[INFO] [stdout]     |                         `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 250 |             } else {
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/controller/auth_controller.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |         match users_dao.username_exists(&candidate).await {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |               |                                     |
[INFO] [stdout]    |               |                                     this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]    |               |                                     up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |               |                                     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |               |                                     `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |               this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]    |               up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |               `__awaitee` calls a custom destructor
[INFO] [stdout]    |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 46 |             Ok(false) => {
[INFO] [stdout] 47 |                 let _ = users_dao.set_username_if_null(user_id, &candidate).await;
[INFO] [stdout]    |                         ---------------------------------------------------------
[INFO] [stdout]    |                         |                                                   |
[INFO] [stdout]    |                         |                                                   this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]    |                         |                                                   `#4` will be dropped later as of Edition 2024
[INFO] [stdout]    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 52 |     }
[INFO] [stdout]    |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/premium_controller.rs:173:41
[INFO] [stdout]     |
[INFO] [stdout] 173 |                 if let Ok(Some(plan)) = data.context.premium_plans.get_premium_plan_by_id(subscription.plan_id).await {
[INFO] [stdout]     |                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                         |                                                                       |
[INFO] [stdout]     |                                         |                                                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                         |                                                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                         |                                                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                         |                                                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                         `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                         `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 197 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/payment_controller.rs:538:11
[INFO] [stdout]     |
[INFO] [stdout] 425 |       let mut transaction_result = data.context.payment_transactions.get_payment_transaction_by_transaction_id(transaction_id).await;
[INFO] [stdout]     |           ----------------------
[INFO] [stdout]     |           |
[INFO] [stdout]     |           `transaction_result` calls a custom destructor
[INFO] [stdout]     |           `transaction_result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 538 |       match data.context.payment_transactions.update_payment_status(
[INFO] [stdout]     |  ___________^
[INFO] [stdout] 539 | |         transaction_id,
[INFO] [stdout] 540 | |         status.clone(),
[INFO] [stdout] 541 | |         payment_method,
[INFO] [stdout] 542 | |         Some(&webhook_data),
[INFO] [stdout] 543 | |     ).await {
[INFO] [stdout]     | |       ----^
[INFO] [stdout]     | |       |   |
[INFO] [stdout]     | |_______|___this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |         |   up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |         up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 580 |   }
[INFO] [stdout]     |   - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `transaction_result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/payment_controller.rs:543:7
[INFO] [stdout]     |
[INFO] [stdout] 425 |     let mut transaction_result = data.context.payment_transactions.get_payment_transaction_by_transaction_id(transaction_id).await;
[INFO] [stdout]     |         ----------------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `transaction_result` calls a custom destructor
[INFO] [stdout]     |         `transaction_result` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 543 |     ).await {
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout]     |       |
[INFO] [stdout]     |       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |       up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 580 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `transaction_result` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/bookmark_controller.rs:428:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |     let rows = sqlx::query(&main_sql)
[INFO] [stdout]     |         ----
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `rows` calls a custom destructor
[INFO] [stdout]     |         `rows` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 428 |     HttpResponse::Ok().json(BookmarkListResponse {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 436 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `rows` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `rows` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:634:41
[INFO] [stdout]     |
[INFO] [stdout] 634 |                 while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |        |                |
[INFO] [stdout]     |                                |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `chunk` calls a custom destructor
[INFO] [stdout]     |                                `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 635 |                     file_content.extend_from_slice(&chunk);
[INFO] [stdout] 636 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:627:33
[INFO] [stdout]      |
[INFO] [stdout]  627 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------    ^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |            |                  |
[INFO] [stdout]      |                    |            |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |            |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                    |            up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  634 |                 while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                -----                     -----
[INFO] [stdout]      |                                |                         |
[INFO] [stdout]      |                                |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                `chunk` calls a custom destructor
[INFO] [stdout]      |                                `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  640 |                     return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                            --------------------------
[INFO] [stdout]      |                            |
[INFO] [stdout]      |                            this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                            `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  649 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  656 |                 match csv_service.parse_csv_preview(csv_content).await {
[INFO] [stdout]      |                       ------------------------------------------------
[INFO] [stdout]      |                       |
[INFO] [stdout]      |                       `__awaitee` calls a custom destructor
[INFO] [stdout]      |                       `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  657 |                     Ok(preview) => {
[INFO] [stdout]  658 |                         return HttpResponse::Ok().json(preview);
[INFO] [stdout]      |                                ------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                `#5` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  661 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  668 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:720:45
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------                       -----
[INFO] [stdout]      |                    |                               |
[INFO] [stdout]      |                    |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |        |                |
[INFO] [stdout]      |                                    |        |                this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |        |                `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout]  721 |                         file_content.extend_from_slice(&chunk);
[INFO] [stdout]  722 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                    |                         `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:720:45
[INFO] [stdout]     |
[INFO] [stdout] 720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                    |        |                |
[INFO] [stdout]     |                                    |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `chunk` calls a custom destructor
[INFO] [stdout]     |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 721 |                         file_content.extend_from_slice(&chunk);
[INFO] [stdout] 722 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:744:45
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------                       -----
[INFO] [stdout]      |                    |                               |
[INFO] [stdout]      |                    |                               this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |                               `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                                    |        |                |
[INFO] [stdout]      |                                    |        |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                    |        |                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    |        this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |        up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  745 |                         options_content.extend_from_slice(&chunk);
[INFO] [stdout]  746 |                     }
[INFO] [stdout]      |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:744:45
[INFO] [stdout]     |
[INFO] [stdout] 744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]     |                                    -----    ^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                    |        |                |
[INFO] [stdout]     |                                    |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                    |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                    |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                    |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                    `chunk` calls a custom destructor
[INFO] [stdout]     |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] 745 |                         options_content.extend_from_slice(&chunk);
[INFO] [stdout] 746 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/admin_soal_controller.rs:712:33
[INFO] [stdout]      |
[INFO] [stdout]  712 |     while let Some(mut field) = payload.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                    ---------    ^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^
[INFO] [stdout]      |                    |            |                  |
[INFO] [stdout]      |                    |            |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                    |            |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |                    |            this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]      |                    |            up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                    `field` calls a custom destructor
[INFO] [stdout]      |                    `field` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  720 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                    |                         `#2` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    `chunk` calls a custom destructor
[INFO] [stdout]      |                                    `chunk` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  726 |                         return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                --------------------------
[INFO] [stdout]      |                                |
[INFO] [stdout]      |                                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]      |                                `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  735 |                             return HttpResponse::BadRequest().json(ErrorResponse {
[INFO] [stdout]      |                                    --------------------------
[INFO] [stdout]      |                                    |
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]      |                                    `#4` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  744 |                     while let Some(chunk) = field.try_next().await.unwrap_or(None) {
[INFO] [stdout]      |                                    -----                     -----
[INFO] [stdout]      |                                    |                         |
[INFO] [stdout]      |                                    |                         this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]      |                                    |                         `#5` will be dropped later as of Edition 2024
[INFO] [stdout]      |                                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]      |                                    `#6` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  757 |     }
[INFO] [stdout]      |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-multipart-0.6.2/src/server.rs:756:1
[INFO] [stdout]      |
[INFO] [stdout]  756 | impl Drop for Safety {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `field` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes_mut.rs:1121:1
[INFO] [stdout]      |
[INFO] [stdout] 1121 | impl Drop for BytesMut {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.13.2/src/lib.rs:2117:1
[INFO] [stdout]      |
[INFO] [stdout] 2117 | impl<A: Array> Drop for SmallVec<A> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `field` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `chunk` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:564:23
[INFO] [stdout]     |
[INFO] [stdout] 553 |           let exists = sqlx::query_scalar::<_, i64>(
[INFO] [stdout]     |  _____________------___-
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `exists` calls a custom destructor
[INFO] [stdout]     | |             `exists` will be dropped later as of Edition 2024
[INFO] [stdout] 554 | |             "SELECT COUNT(*) FROM dbquizapp.paket_soal_items WHERE paket_soal_id = ? AND soal_id = ?"
[INFO] [stdout] 555 | |         )
[INFO] [stdout] 556 | |         .bind(package_id)
[INFO] [stdout] 557 | |         .bind(question_id)
[INFO] [stdout] 558 | |         .fetch_one(&*data.context.soal.pool)
[INFO] [stdout] 559 | |         .await;
[INFO] [stdout]     | |          -----
[INFO] [stdout]     | |          |   |
[INFO] [stdout]     | |__________|___`__awaitee` calls a custom destructor
[INFO] [stdout]     |            |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |            this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |            `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 564 |                   match sqlx::query(
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout] 565 | |                     "INSERT INTO dbquizapp.paket_soal_items (paket_soal_id, soal_id) VALUES (?, ?)"
[INFO] [stdout] 566 | |                 )
[INFO] [stdout] 567 | |                 .bind(package_id)
[INFO] [stdout] 568 | |                 .bind(question_id)
[INFO] [stdout] 569 | |                 .execute(&*data.context.soal.pool)
[INFO] [stdout] 570 | |                 .await
[INFO] [stdout]     | |                  ----^
[INFO] [stdout]     | |__________________|___|
[INFO] [stdout]     | |__________________|___this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |__________________|___up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |__________________|___this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                    |   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                    up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                    `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 573 | |                     Err(e) => println!("Error adding question {} to package: {:?}", question_id, e),
[INFO] [stdout]     | |                         -
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `e` calls a custom destructor
[INFO] [stdout]     | |                         `e` will be dropped later as of Edition 2024
[INFO] [stdout] 574 | |                 }
[INFO] [stdout] 575 | |             }
[INFO] [stdout]     | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout] ...   |
[INFO] [stdout] 579 | |             Err(e) => {
[INFO] [stdout]     | |                 -
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#5` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `exists` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_paket_soal_items_controller.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 195 |           let exists = sqlx::query(check_query)
[INFO] [stdout]     |  _____________------___-
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             `exists` calls a custom destructor
[INFO] [stdout]     | |             `exists` will be dropped later as of Edition 2024
[INFO] [stdout] 196 | |             .bind(paket_soal_id)
[INFO] [stdout] 197 | |             .bind(soal_id)
[INFO] [stdout] 198 | |             .fetch_optional(&mut *tx)
[INFO] [stdout] 199 | |             .await;
[INFO] [stdout]     | |              -----
[INFO] [stdout]     | |              |   |
[INFO] [stdout]     | |______________|___`__awaitee` calls a custom destructor
[INFO] [stdout]     |                |   `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 209 |                   match sqlx::query(insert_query)
[INFO] [stdout]     |  _______________________^
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout]     | |_______________________|
[INFO] [stdout] 210 | |                     .bind(paket_soal_id)
[INFO] [stdout] 211 | |                     .bind(soal_id)
[INFO] [stdout] 212 | |                     .execute(&mut *tx)
[INFO] [stdout] 213 | |                     .await
[INFO] [stdout]     | |                      ----^
[INFO] [stdout]     | |______________________|___|
[INFO] [stdout]     | |______________________|___this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     | |______________________|___up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     | |______________________|___this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                        |   `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                        up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                        `#3` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 216 | |                     Err(err) => {
[INFO] [stdout]     | |                         ---
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         `err` calls a custom destructor
[INFO] [stdout]     | |                         `err` will be dropped later as of Edition 2024
[INFO] [stdout] 217 | |                         eprintln!("Error inserting mapping: {}", err);
[INFO] [stdout] 218 | |                         let _ = tx.rollback().await;
[INFO] [stdout]     | |                                 -------------------
[INFO] [stdout]     | |                                 |             |
[INFO] [stdout]     | |                                 |             this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     | |                                 |             `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                 this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     | |                                 `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     | |                                 this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     | |                                 `#5` will be dropped later as of Edition 2024
[INFO] [stdout] 219 | |                         return Ok(HttpResponse::InternalServerError().json("Failed to create mapping"));
[INFO] [stdout]     | |                                   -----------------------------------
[INFO] [stdout]     | |                                   |
[INFO] [stdout]     | |                                   this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     | |                                   `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...   |
[INFO] [stdout] 222 | |             }
[INFO] [stdout]     | |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#8` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `exists` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `exists` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `err` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#4` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#6` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#7` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#7` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:246:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     let basic_stats = sqlx::query_as::<_, BasicUserStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 246 |     HttpResponse::Ok().json(user_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 247 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 270 |     let basic_stats = sqlx::query_as::<_, BasicSessionStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 368 |     HttpResponse::Ok().json(session_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 369 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:509:5
[INFO] [stdout]     |
[INFO] [stdout] 392 |     let basic_stats = sqlx::query_as::<_, BasicRevenueStats>(
[INFO] [stdout]     |         -----------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `basic_stats` calls a custom destructor
[INFO] [stdout]     |         `basic_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 431 |     let subscription_stats = sqlx::query_as::<_, SubscriptionStats>(
[INFO] [stdout]     |         ------------------
[INFO] [stdout]     |         |
[INFO] [stdout]     |         `subscription_stats` calls a custom destructor
[INFO] [stdout]     |         `subscription_stats` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 509 |     HttpResponse::Ok().json(revenue_analytics)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 510 | }
[INFO] [stdout]     | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]     |
[INFO] [stdout] 571 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]     |
[INFO] [stdout] 159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `basic_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `subscription_stats` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/controller/internal_soal_controller.rs:93:15
[INFO] [stdout]     |
[INFO] [stdout]  93 |         match data.context.soal.create_soal(question).await {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |               |                                       |
[INFO] [stdout]     |               |                                       this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |               |                                       up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               |                                       this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |               |                                       `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |               this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |               up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |               `__awaitee` calls a custom destructor
[INFO] [stdout]     |               `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]  94 |             Ok(_) => success_count += 1,
[INFO] [stdout]  95 |             Err(e) => {
[INFO] [stdout]     |                 -
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `e` calls a custom destructor
[INFO] [stdout]     |                 `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 100 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/controller/subscription_controller.rs:438:5
[INFO] [stdout]      |
[INFO] [stdout]  345 |     let midtrans = make_midtrans_service(&data);
[INFO] [stdout]      |         --------
[INFO] [stdout]      |         |
[INFO] [stdout]      |         `midtrans` calls a custom destructor
[INFO] [stdout]      |         `midtrans` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  438 |     HttpResponse::Ok().json(serde_json::json!({
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |     |
[INFO] [stdout]      |     this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |     up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  443 | }
[INFO] [stdout]      | - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/actix-http-3.9.0/src/responses/head.rs:159:1
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Drop for BoxedResponseHead {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `midtrans` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.7.2/src/bytes.rs:571:1
[INFO] [stdout]      |
[INFO] [stdout]  571 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.30/src/oneshot.rs:387:1
[INFO] [stdout]      |
[INFO] [stdout]  387 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.30/src/oneshot.rs:387:1
[INFO] [stdout]      |
[INFO] [stdout]  387 | impl<T> Drop for Sender<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.40.0/src/sync/mpsc/chan.rs:225:1
[INFO] [stdout]      |
[INFO] [stdout]  225 | impl<T, S> Drop for Tx<T, S> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `midtrans` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/foreign-types-0.3.2/src/lib.rs:238:9
[INFO] [stdout]      |
[INFO] [stdout]  238 |           impl Drop for $owned {
[INFO] [stdout]      |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.69/src/ssl/mod.rs:1776:1
[INFO] [stdout]      |
[INFO] [stdout] 1776 | / foreign_type_and_impl_send_sync! {
[INFO] [stdout] 1777 | |     type CType = ffi::SSL_CTX;
[INFO] [stdout] 1778 | |     fn drop = ffi::SSL_CTX_free;
[INFO] [stdout] ...    |
[INFO] [stdout] 1789 | |     pub struct SslContextRef;
[INFO] [stdout] 1790 | | }
[INFO] [stdout]      | |_- in this macro invocation
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:52:91
[INFO] [stdout]     |
[INFO] [stdout]  51 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout]  52 |             if let Err(e) = RedisService::store_session(&mut con, &token, &redis_session).await {
[INFO] [stdout]     |                                                                                           ^^^^^
[INFO] [stdout]     |                                                                                           |
[INFO] [stdout]     |                                                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:78:90
[INFO] [stdout]     |
[INFO] [stdout]  77 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout]  78 |             if let Ok(Some(_redis_session)) = RedisService::get_session(&mut con, token).await {
[INFO] [stdout]     |                                                                                          ^^^^^
[INFO] [stdout]     |                                                                                          |
[INFO] [stdout]     |                                                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  91 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/session_dao.rs:127:75
[INFO] [stdout]     |
[INFO] [stdout] 126 |             let mut con = pool.sessions().as_ref().clone();
[INFO] [stdout]     |                 -------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `con` calls a custom destructor
[INFO] [stdout]     |                 `con` will be dropped later as of Edition 2024
[INFO] [stdout] 127 |             if let Err(e) = RedisService::delete_session(&mut con, token).await {
[INFO] [stdout]     |                                                                           ^^^^^
[INFO] [stdout]     |                                                                           |
[INFO] [stdout]     |                                                                           this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                                           up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 130 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `con` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arc-swap-1.7.1/src/lib.rs:326:1
[INFO] [stdout]     |
[INFO] [stdout] 326 | impl<T: RefCnt, S: Strategy<T>> Drop for ArcSwapAny<T, S> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/dao/quiz_session_dao.rs:278:58
[INFO] [stdout]     |
[INFO] [stdout] 223 |         let mut params: Vec<Box<dyn sqlx::Encode<'_, sqlx::MySql> + Send + 'static>> = vec![
[INFO] [stdout]     |             ----------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `params` calls a custom destructor
[INFO] [stdout]     |             `params` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 278 |         self.get_quiz_session_by_id(session_id, user_id).await
[INFO] [stdout]     |                                                          ^^^^^
[INFO] [stdout]     |                                                          |
[INFO] [stdout]     |                                                          this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                                          up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 279 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `params` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/main.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 67 |             interval.tick().await;
[INFO] [stdout]    |             ---------------------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `__awaitee` calls a custom destructor
[INFO] [stdout]    |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 68 |             if let Err(e) = app_state_clone.context.sessions.delete_expired_sessions().await {
[INFO] [stdout]    |                        -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                        |    |                                                          |
[INFO] [stdout]    |                        |    |                                                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]    |                        |    |                                                          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                        |    |                                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                        |    |                                                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                        |    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                        |    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                        |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                        |    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                        `e` calls a custom destructor
[INFO] [stdout]    |                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]   --> src/main.rs:68:29
[INFO] [stdout]    |
[INFO] [stdout] 67 |             interval.tick().await;
[INFO] [stdout]    |             ---------------------
[INFO] [stdout]    |             |
[INFO] [stdout]    |             `__awaitee` calls a custom destructor
[INFO] [stdout]    |             `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 68 |             if let Err(e) = app_state_clone.context.sessions.delete_expired_sessions().await {
[INFO] [stdout]    |                        -    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]    |                        |    |                                                          |
[INFO] [stdout]    |                        |    |                                                          this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]    |                        |    |                                                          up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                        |    |                                                          this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]    |                        |    |                                                          `#2` will be dropped later as of Edition 2024
[INFO] [stdout]    |                        |    this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]    |                        |    up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]    |                        |    this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]    |                        |    `#1` will be dropped later as of Edition 2024
[INFO] [stdout]    |                        `e` calls a custom destructor
[INFO] [stdout]    |                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 71 |         }
[INFO] [stdout]    |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout]    = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]    = warning: this changes meaning in Rust 2024
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]    = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12m 42s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4, redis v0.24.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check: quiz-backend v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking quiz-backend v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `actix_web::web`
[INFO] [stdout]  --> src/controller/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::web;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PremiumPlan`
[INFO] [stdout]  --> src/controller/premium_controller.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::premium_plan::{PremiumPlan, PremiumPlanResponse, CreatePremiumPlanRequest, UpdatePremiumPlanRequest};
[INFO] [stdout]   |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserSubscription`
[INFO] [stdout]  --> src/controller/premium_controller.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::user_subscription::{UserSubscription, UserSubscriptionResponse, CreateUserSubscriptionRequest, UpdateUserSubscripti...
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PremiumQuizAccessResponse`, `PremiumQuizAccess`, and `QuizAccessCheckResponse`
[INFO] [stdout]  --> src/controller/premium_controller.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{PremiumQuizAccess, PremiumQuizAccessResponse, CreatePremiumQuizAccessRequest, UpdatePremiumQuizAccessRequest, QuizAccessCheckResponse};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePaymentRequest`, `MayarWebhookPayload`, `PaymentStatus`, `PaymentTransactionResponse`, and `PaymentTransaction`
[INFO] [stdout]  --> src/controller/premium_controller.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ransaction::{PaymentTransaction, PaymentTransactionResponse, CreatePaymentRequest, PaymentStatus, MayarWebhookPayload};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `delete`, `get`, `post`, and `put`
[INFO] [stdout]  --> src/controller/premium_controller.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use actix_web::{get, post, put, delete, web, HttpResponse, Responder, HttpRequest};
[INFO] [stdout]   |                 ^^^  ^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/controller/premium_controller.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/controller/premium_controller.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PaymentTransactionResponse` and `PaymentTransaction`
[INFO] [stdout]  --> src/controller/payment_controller.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::payment_transaction::{PaymentTransaction, PaymentStatus, PaymentTransactionResponse, CreatePaymentRequest, MayarWeb...
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/controller/payment_controller.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActivateLicenseResponse`, `MayarLicenseVerifyRequest`, `MayarLicenseVerifyResponse`, `SubscriptionInfo`, and `UserInfo`
[INFO] [stdout]  --> src/controller/license_controller.rs:2:56
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...st, ActivateLicenseResponse, LicenseStatus, UserInfo, SubscriptionInfo, MayarLicenseVerifyRequest, MayarLicenseVerifyResponse, Lic...
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^                 ^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserSubscription`
[INFO] [stdout]  --> src/controller/license_controller.rs:3:70
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::user_subscription::{CreateUserSubscriptionRequest, UserSubscription};
[INFO] [stdout]   |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TokenClaims`
[INFO] [stdout]  --> src/controller/license_controller.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::auth::{generate_token, TokenClaims};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/controller/license_controller.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Algorithm`, `EncodingKey`, `Header`, and `encode`
[INFO] [stdout]   --> src/controller/license_controller.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use jsonwebtoken::{encode, Header, EncodingKey, Algorithm};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/controller/license_controller.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use log::{info, error, warn};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LicenseVerificationRequest` and `License`
[INFO] [stdout]   --> src/controller/license_controller.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::model::payment_transaction::{License, LicenseVerificationRequest};
[INFO] [stdout]    |                                         ^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HttpRequest`
[INFO] [stdout]  --> src/controller/quiz_session_controller.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use actix_web::{web, HttpResponse, HttpRequest};
[INFO] [stdout]   |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QuizSession`
[INFO] [stdout]  --> src/controller/quiz_session_controller.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     QuizSession, QuizSessionResponse, CreateQuizSessionRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Soal`
[INFO] [stdout]  --> src/controller/admin_soal_controller.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::soal::{Soal, AdminSoal, UpdateSoalRequest, QuestionSearchRequest, PaginatedQuestionsResponse, BulkImportRequest, Bu...
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CsvImportConfig`
[INFO] [stdout]  --> src/controller/admin_soal_controller.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::service::csv_import_service::{CsvImportService, CsvImportConfig};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tempfile::NamedTempFile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpdatePaketSoalRequest`
[INFO] [stdout]  --> src/controller/admin_packages_controller.rs:3:106
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::paket_soal::{PaketSoal, AdminPaketSoal, AdminPaketSoalRequest, CreatePaketSoalRequest, UpdatePaketSoalRequest, Pack...
[INFO] [stdout]   |                                                                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MySql` and `Pool`
[INFO] [stdout]  --> src/controller/admin_paket_soal_items_controller.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use sqlx::{MySql, Pool, FromRow};
[INFO] [stdout]   |            ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PaketSoalItemRequest` and `PaketSoalItem`
[INFO] [stdout]  --> src/controller/admin_paket_soal_items_controller.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     PaketSoalItem, PaketSoalItemRequest, PaketSoalItemWithDetails, 
[INFO] [stdout]   |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/controller/question_comment_controller.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrivacySettings`
[INFO] [stdout]  --> src/dao/user_dao.rs:4:68
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::model::public_profile::{PublicStats, CategoryBestScore, PrivacySettings};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::AppState`
[INFO] [stdout]  --> src/dao/session_dao.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::AppState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/dao/session_dao.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `redis::aio::ConnectionManager`
[INFO] [stdout]  --> src/dao/session_dao.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use redis::aio::ConnectionManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreatePaymentRequest`
[INFO] [stdout]  --> src/dao/payment_transaction_dao.rs:2:104
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::payment_transaction::{PaymentTransaction, PaymentStatus, PaymentTransactionResponse, CreatePaymentRequest};
[INFO] [stdout]   |                                                                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Pool`
[INFO] [stdout]   --> src/dao/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use sqlx::Pool;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::MySql`
[INFO] [stdout]   --> src/dao/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use sqlx::MySql;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/model/kategori_soal.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/model/analytics.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]    --> src/model/payment_transaction.rs:138:23
[INFO] [stdout]     |
[INFO] [stdout] 138 |     use serde::{self, Deserialize, Serializer, Deserializer};
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePremiumPlanRequest`, `PremiumPlanResponse`, `PremiumPlan`, and `UpdatePremiumPlanRequest`
[INFO] [stdout]   --> src/docs.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::model::premium_plan::{PremiumPlan, PremiumPlanResponse, CreatePremiumPlanRequest, UpdatePremiumPlanRequest};
[INFO] [stdout]    |                                  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateUserSubscriptionRequest`, `UpdateUserSubscriptionRequest`, `UserSubscriptionResponse`, and `UserSubscription`
[INFO] [stdout]   --> src/docs.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 | ...scription::{UserSubscription, UserSubscriptionResponse, CreateUserSubscriptionRequest, UpdateUserSubscriptionRequest};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePremiumQuizAccessRequest`, `PremiumQuizAccessResponse`, `PremiumQuizAccess`, `QuizAccessCheckResponse`, and `UpdatePremiumQuizAccessRequest`
[INFO] [stdout]   --> src/docs.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | ...::{PremiumQuizAccess, PremiumQuizAccessResponse, CreatePremiumQuizAccessRequest, UpdatePremiumQuizAccessRequest, QuizAccessCheckResponse};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePaymentRequest`, `MayarWebhookPayload`, `PaymentStatus`, `PaymentTransactionResponse`, and `PaymentTransaction`
[INFO] [stdout]   --> src/docs.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | ...ansaction::{PaymentTransaction, PaymentTransactionResponse, CreatePaymentRequest, PaymentStatus, MayarWebhookPayload};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/service/payment_service.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Duration, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/service/payment_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest::Client`
[INFO] [stdout]  --> src/service/payment_service.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use reqwest::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/service/payment_service.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Duration`, and `Utc`
[INFO] [stdout]  --> src/service/redis_service.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_multipart::Multipart`
[INFO] [stdout]  --> src/service/csv_import_service.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_multipart::Multipart;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse` and `web`
[INFO] [stdout]  --> src/service/csv_import_service.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::{web, HttpResponse};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/service/csv_import_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/service/csv_import_service.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::{Cursor, Read};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_web::web`
[INFO] [stdout]  --> src/controller/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::web;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PremiumPlan`
[INFO] [stdout]  --> src/controller/premium_controller.rs:2:34
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::premium_plan::{PremiumPlan, PremiumPlanResponse, CreatePremiumPlanRequest, UpdatePremiumPlanRequest};
[INFO] [stdout]   |                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserSubscription`
[INFO] [stdout]  --> src/controller/premium_controller.rs:3:39
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::user_subscription::{UserSubscription, UserSubscriptionResponse, CreateUserSubscriptionRequest, UpdateUserSubscripti...
[INFO] [stdout]   |                                       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PremiumQuizAccessResponse`, `PremiumQuizAccess`, and `QuizAccessCheckResponse`
[INFO] [stdout]  --> src/controller/premium_controller.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 | ...::{PremiumQuizAccess, PremiumQuizAccessResponse, CreatePremiumQuizAccessRequest, UpdatePremiumQuizAccessRequest, QuizAccessCheckResponse};
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                                  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePaymentRequest`, `MayarWebhookPayload`, `PaymentStatus`, `PaymentTransactionResponse`, and `PaymentTransaction`
[INFO] [stdout]  --> src/controller/premium_controller.rs:5:41
[INFO] [stdout]   |
[INFO] [stdout] 5 | ...ransaction::{PaymentTransaction, PaymentTransactionResponse, CreatePaymentRequest, PaymentStatus, MayarWebhookPayload};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `delete`, `get`, `post`, and `put`
[INFO] [stdout]  --> src/controller/premium_controller.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use actix_web::{get, post, put, delete, web, HttpResponse, Responder, HttpRequest};
[INFO] [stdout]   |                 ^^^  ^^^^  ^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/controller/premium_controller.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/controller/premium_controller.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PaymentTransactionResponse` and `PaymentTransaction`
[INFO] [stdout]  --> src/controller/payment_controller.rs:2:41
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::payment_transaction::{PaymentTransaction, PaymentStatus, PaymentTransactionResponse, CreatePaymentRequest, MayarWeb...
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]  --> src/controller/payment_controller.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::Mutex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ActivateLicenseResponse`, `MayarLicenseVerifyRequest`, `MayarLicenseVerifyResponse`, `SubscriptionInfo`, and `UserInfo`
[INFO] [stdout]  --> src/controller/license_controller.rs:2:56
[INFO] [stdout]   |
[INFO] [stdout] 2 | ...st, ActivateLicenseResponse, LicenseStatus, UserInfo, SubscriptionInfo, MayarLicenseVerifyRequest, MayarLicenseVerifyResponse, Lic...
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^^^^^                 ^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UserSubscription`
[INFO] [stdout]  --> src/controller/license_controller.rs:3:70
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::user_subscription::{CreateUserSubscriptionRequest, UserSubscription};
[INFO] [stdout]   |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TokenClaims`
[INFO] [stdout]  --> src/controller/license_controller.rs:5:42
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::utils::auth::{generate_token, TokenClaims};
[INFO] [stdout]   |                                          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/controller/license_controller.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Algorithm`, `EncodingKey`, `Header`, and `encode`
[INFO] [stdout]   --> src/controller/license_controller.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use jsonwebtoken::{encode, Header, EncodingKey, Algorithm};
[INFO] [stdout]    |                    ^^^^^^  ^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/controller/license_controller.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use log::{info, error, warn};
[INFO] [stdout]    |                        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LicenseVerificationRequest` and `License`
[INFO] [stdout]   --> src/controller/license_controller.rs:16:41
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::model::payment_transaction::{License, LicenseVerificationRequest};
[INFO] [stdout]    |                                         ^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HttpRequest`
[INFO] [stdout]  --> src/controller/quiz_session_controller.rs:1:36
[INFO] [stdout]   |
[INFO] [stdout] 1 | use actix_web::{web, HttpResponse, HttpRequest};
[INFO] [stdout]   |                                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `QuizSession`
[INFO] [stdout]  --> src/controller/quiz_session_controller.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     QuizSession, QuizSessionResponse, CreateQuizSessionRequest,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Soal`
[INFO] [stdout]  --> src/controller/admin_soal_controller.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::soal::{Soal, AdminSoal, UpdateSoalRequest, QuestionSearchRequest, PaginatedQuestionsResponse, BulkImportRequest, Bu...
[INFO] [stdout]   |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CsvImportConfig`
[INFO] [stdout]  --> src/controller/admin_soal_controller.rs:4:60
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::service::csv_import_service::{CsvImportService, CsvImportConfig};
[INFO] [stdout]   |                                                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::io::Write;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tempfile::NamedTempFile`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tempfile::NamedTempFile;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `UpdatePaketSoalRequest`
[INFO] [stdout]  --> src/controller/admin_packages_controller.rs:3:106
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::model::paket_soal::{PaketSoal, AdminPaketSoal, AdminPaketSoalRequest, CreatePaketSoalRequest, UpdatePaketSoalRequest, Pack...
[INFO] [stdout]   |                                                                                                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MySql` and `Pool`
[INFO] [stdout]  --> src/controller/admin_paket_soal_items_controller.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | use sqlx::{MySql, Pool, FromRow};
[INFO] [stdout]   |            ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PaketSoalItemRequest` and `PaketSoalItem`
[INFO] [stdout]  --> src/controller/admin_paket_soal_items_controller.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     PaketSoalItem, PaketSoalItemRequest, PaketSoalItemWithDetails, 
[INFO] [stdout]   |     ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]  --> src/controller/question_comment_controller.rs:9:13
[INFO] [stdout]   |
[INFO] [stdout] 9 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `PrivacySettings`
[INFO] [stdout]  --> src/dao/user_dao.rs:4:68
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::model::public_profile::{PublicStats, CategoryBestScore, PrivacySettings};
[INFO] [stdout]   |                                                                    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::AppState`
[INFO] [stdout]  --> src/dao/session_dao.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::AppState;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/dao/session_dao.rs:6:14
[INFO] [stdout]   |
[INFO] [stdout] 6 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `redis::aio::ConnectionManager`
[INFO] [stdout]  --> src/dao/session_dao.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use redis::aio::ConnectionManager;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CreatePaymentRequest`
[INFO] [stdout]  --> src/dao/payment_transaction_dao.rs:2:104
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::model::payment_transaction::{PaymentTransaction, PaymentStatus, PaymentTransactionResponse, CreatePaymentRequest};
[INFO] [stdout]   |                                                                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::Pool`
[INFO] [stdout]   --> src/dao/mod.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use sqlx::Pool;
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sqlx::MySql`
[INFO] [stdout]   --> src/dao/mod.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 33 | use sqlx::MySql;
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/model/kategori_soal.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Utc`
[INFO] [stdout]  --> src/model/analytics.rs:5:14
[INFO] [stdout]   |
[INFO] [stdout] 5 | use chrono::{DateTime, Utc};
[INFO] [stdout]   |              ^^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]    --> src/model/payment_transaction.rs:138:23
[INFO] [stdout]     |
[INFO] [stdout] 138 |     use serde::{self, Deserialize, Serializer, Deserializer};
[INFO] [stdout]     |                       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePremiumPlanRequest`, `PremiumPlanResponse`, `PremiumPlan`, and `UpdatePremiumPlanRequest`
[INFO] [stdout]   --> src/docs.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::model::premium_plan::{PremiumPlan, PremiumPlanResponse, CreatePremiumPlanRequest, UpdatePremiumPlanRequest};
[INFO] [stdout]    |                                  ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreateUserSubscriptionRequest`, `UpdateUserSubscriptionRequest`, `UserSubscriptionResponse`, and `UserSubscription`
[INFO] [stdout]   --> src/docs.rs:12:39
[INFO] [stdout]    |
[INFO] [stdout] 12 | ...scription::{UserSubscription, UserSubscriptionResponse, CreateUserSubscriptionRequest, UpdateUserSubscriptionRequest};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePremiumQuizAccessRequest`, `PremiumQuizAccessResponse`, `PremiumQuizAccess`, `QuizAccessCheckResponse`, and `UpdatePremiumQuizAccessRequest`
[INFO] [stdout]   --> src/docs.rs:13:41
[INFO] [stdout]    |
[INFO] [stdout] 13 | ...::{PremiumQuizAccess, PremiumQuizAccessResponse, CreatePremiumQuizAccessRequest, UpdatePremiumQuizAccessRequest, QuizAccessCheckResponse};
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CreatePaymentRequest`, `MayarWebhookPayload`, `PaymentStatus`, `PaymentTransactionResponse`, and `PaymentTransaction`
[INFO] [stdout]   --> src/docs.rs:14:41
[INFO] [stdout]    |
[INFO] [stdout] 14 | ...ansaction::{PaymentTransaction, PaymentTransactionResponse, CreatePaymentRequest, PaymentStatus, MayarWebhookPayload};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DateTime`
[INFO] [stdout]  --> src/service/payment_service.rs:2:14
[INFO] [stdout]   |
[INFO] [stdout] 2 | use chrono::{DateTime, Duration, Utc};
[INFO] [stdout]   |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::json`
[INFO] [stdout]  --> src/service/payment_service.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::json;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reqwest::Client`
[INFO] [stdout]  --> src/service/payment_service.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use reqwest::Client;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/service/payment_service.rs:7:13
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde::{Deserialize, Serialize};
[INFO] [stdout]   |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime`, `Duration`, and `Utc`
[INFO] [stdout]  --> src/service/redis_service.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^  ^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `actix_multipart::Multipart`
[INFO] [stdout]  --> src/service/csv_import_service.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use actix_multipart::Multipart;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HttpResponse` and `web`
[INFO] [stdout]  --> src/service/csv_import_service.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use actix_web::{web, HttpResponse};
[INFO] [stdout]   |                 ^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `regex::Regex`
[INFO] [stdout]  --> src/service/csv_import_service.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use regex::Regex;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/service/csv_import_service.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::io::{Cursor, Read};
[INFO] [stdout]   |                       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/controller/auth_controller.rs:181:28
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         Ok(session) => {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/controller/premium_controller.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     req: HttpRequest,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/controller/premium_controller.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 |     req: HttpRequest,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/dao/user_subscription_dao.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 |         if let Some(status) = &update.status {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_date`
[INFO] [stdout]    --> src/dao/user_subscription_dao.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |         if let Some(end_date) = update.end_date {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `session`
[INFO] [stdout]    --> src/controller/auth_controller.rs:181:28
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         Ok(session) => {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_session`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_id`
[INFO] [stdout]    --> src/controller/license_controller.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let license_id = match state.context.license_codes.create_license(
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/controller/premium_controller.rs:325:5
[INFO] [stdout]     |
[INFO] [stdout] 325 |     req: HttpRequest,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `req`
[INFO] [stdout]    --> src/controller/premium_controller.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 |     req: HttpRequest,
[INFO] [stdout]     |     ^^^ help: if this is intentional, prefix it with an underscore: `_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `status`
[INFO] [stdout]    --> src/dao/user_subscription_dao.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 |         if let Some(status) = &update.status {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `end_date`
[INFO] [stdout]    --> src/dao/user_subscription_dao.rs:112:21
[INFO] [stdout]     |
[INFO] [stdout] 112 |         if let Some(end_date) = update.end_date {
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_end_date`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_user_controller.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `license_id`
[INFO] [stdout]    --> src/controller/license_controller.rs:343:9
[INFO] [stdout]     |
[INFO] [stdout] 343 |     let license_id = match state.context.license_codes.create_license(
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_license_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:253:5
[INFO] [stdout]     |
[INFO] [stdout] 253 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:365:5
[INFO] [stdout]     |
[INFO] [stdout] 365 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 418 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 464 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_kategori_controller.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:522:5
[INFO] [stdout]     |
[INFO] [stdout] 522 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 620 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:699:5
[INFO] [stdout]     |
[INFO] [stdout] 699 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:868:5
[INFO] [stdout]     |
[INFO] [stdout] 868 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_packages_controller.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:538:5
[INFO] [stdout]     |
[INFO] [stdout] 538 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:614:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:387:5
[INFO] [stdout]     |
[INFO] [stdout] 387 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_user_controller.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:253:5
[INFO] [stdout]     |
[INFO] [stdout] 253 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:365:5
[INFO] [stdout]     |
[INFO] [stdout] 365 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 418 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_user_controller.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 464 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_kategori_controller.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:188:5
[INFO] [stdout]     |
[INFO] [stdout] 188 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_kategori_controller.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_soal_controller.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:240:5
[INFO] [stdout]     |
[INFO] [stdout] 240 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:426:5
[INFO] [stdout]     |
[INFO] [stdout] 426 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:522:5
[INFO] [stdout]     |
[INFO] [stdout] 522 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:620:5
[INFO] [stdout]     |
[INFO] [stdout] 620 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:699:5
[INFO] [stdout]     |
[INFO] [stdout] 699 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_soal_controller.rs:868:5
[INFO] [stdout]     |
[INFO] [stdout] 868 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]   --> src/controller/admin_packages_controller.rs:55:5
[INFO] [stdout]    |
[INFO] [stdout] 55 |     http_req: HttpRequest,
[INFO] [stdout]    |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:323:5
[INFO] [stdout]     |
[INFO] [stdout] 323 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:398:5
[INFO] [stdout]     |
[INFO] [stdout] 398 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:538:5
[INFO] [stdout]     |
[INFO] [stdout] 538 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_packages_controller.rs:614:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 167 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:265:5
[INFO] [stdout]     |
[INFO] [stdout] 265 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `http_req`
[INFO] [stdout]    --> src/controller/admin_analytics_controller.rs:387:5
[INFO] [stdout]     |
[INFO] [stdout] 387 |     http_req: HttpRequest,
[INFO] [stdout]     |     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_http_req`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CountResult` is never constructed
[INFO] [stdout]   --> src/controller/question_comment_controller.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct CountResult {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_lifetime` is never read
[INFO] [stdout]    --> src/controller/subscription_controller.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |     struct PlanRow {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 256 |         is_lifetime: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `redirectUrl` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub redirectUrl: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `redirect_url`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expiredAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub expiredAt: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `expired_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `statusCode` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub statusCode: i32,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionStatus` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub transactionStatus: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `createdAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub createdAt: i64,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `created_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updatedAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub updatedAt: i64,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `updated_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub merchantId: String,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `merchant_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub merchantName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `merchant_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantEmail` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub merchantEmail: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `merchant_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub customerName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerEmail` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub customerEmail: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerMobile` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub customerMobile: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isAdminFeeBorneByCustomer` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub isAdminFeeBorneByCustomer: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_admin_fee_borne_by_customer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isChannelFeeBorneByCustomer` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub isChannelFeeBorneByCustomer: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_channel_fee_borne_by_customer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub productId: String,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub productName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `product_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productType` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub productType: String,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `product_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `pixelFbp` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub pixelFbp: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `pixel_fbp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `pixelFbc` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub pixelFbc: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `pixel_fbc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `paymentUrl` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub paymentUrl: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `payment_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `couponUsed` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub couponUsed: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `coupon_used`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `paymentMethod` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub paymentMethod: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `payment_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nettAmount` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub nettAmount: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `nett_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub licenseCode: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub productId: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `statusCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub statusCode: i32,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isLicenseActive` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub isLicenseActive: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_license_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub licenseCode: MayarLicenseData,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub licenseCode: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expiredAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub expiredAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `expired_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub productId: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub customerId: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `customer_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerName` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub customerName: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerEmail` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub customerEmail: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `activationLimit` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub activationLimit: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `activation_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `useCount` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub useCount: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `use_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `createdAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub createdAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `created_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updatedAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub updatedAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `updated_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `membershipTierId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub membershipTierId: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `membership_tier_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `membershipTierName` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub membershipTierName: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `membership_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CountResult` is never constructed
[INFO] [stdout]   --> src/controller/question_comment_controller.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct CountResult {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_lifetime` is never read
[INFO] [stdout]    --> src/controller/subscription_controller.rs:256:9
[INFO] [stdout]     |
[INFO] [stdout] 252 |     struct PlanRow {
[INFO] [stdout]     |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 256 |         is_lifetime: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `redirectUrl` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub redirectUrl: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `redirect_url`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expiredAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:60:9
[INFO] [stdout]    |
[INFO] [stdout] 60 |     pub expiredAt: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `expired_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `statusCode` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |     pub statusCode: i32,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionStatus` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub transactionStatus: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_status`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `createdAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub createdAt: i64,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `created_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updatedAt` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub updatedAt: i64,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `updated_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantId` should have a snake case name
[INFO] [stdout]   --> src/model/payment_transaction.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub merchantId: String,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `merchant_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub merchantName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `merchant_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `merchantEmail` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:101:9
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub merchantEmail: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `merchant_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |     pub customerName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerEmail` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     pub customerEmail: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerMobile` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:104:9
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub customerMobile: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_mobile`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isAdminFeeBorneByCustomer` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 107 |     pub isAdminFeeBorneByCustomer: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_admin_fee_borne_by_customer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isChannelFeeBorneByCustomer` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:109:9
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub isChannelFeeBorneByCustomer: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_channel_fee_borne_by_customer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 110 |     pub productId: String,
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productName` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub productName: String,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `product_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productType` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub productType: String,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: convert the identifier to snake case: `product_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `pixelFbp` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub pixelFbp: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `pixel_fbp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `pixelFbc` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub pixelFbc: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^ help: convert the identifier to snake case: `pixel_fbc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `paymentUrl` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |     pub paymentUrl: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `payment_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `couponUsed` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub couponUsed: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `coupon_used`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `paymentMethod` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub paymentMethod: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `payment_method`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `nettAmount` should have a snake case name
[INFO] [stdout]    --> src/model/payment_transaction.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 128 |     pub nettAmount: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `nett_amount`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub licenseCode: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub productId: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `statusCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub statusCode: i32,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `status_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `isLicenseActive` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     pub isLicenseActive: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `is_license_active`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:74:9
[INFO] [stdout]    |
[INFO] [stdout] 74 |     pub licenseCode: MayarLicenseData,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `licenseCode` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |     pub licenseCode: String,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `license_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `expiredAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:81:9
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub expiredAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `expired_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `transactionId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub transactionId: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `transaction_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `productId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |     pub productId: String,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `product_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:84:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub customerId: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `customer_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerName` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub customerName: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `customerEmail` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub customerEmail: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `customer_email`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `activationLimit` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:87:9
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub activationLimit: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `activation_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `useCount` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub useCount: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^ help: convert the identifier to snake case: `use_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `createdAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 89 |     pub createdAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `created_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `updatedAt` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:90:9
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub updatedAt: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^ help: convert the identifier to snake case: `updated_at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `membershipTierId` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub membershipTierId: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `membership_tier_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `membershipTierName` should have a snake case name
[INFO] [stdout]   --> src/model/license_code.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub membershipTierName: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `membership_tier_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthenticatedUser` is never constructed
[INFO] [stdout]   --> src/middleware/auth_middleware.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct AuthenticatedUser {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HTTP_CLIENT` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | static HTTP_CLIENT: OnceLock<reqwest::Client> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_client` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn http_client() -> &'static reqwest::Client {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthentikClaims` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AuthentikClaims {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LegacyClaims` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct LegacyClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_authentik_token` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | async fn validate_authentik_token(token: &str) -> Option<AuthentikClaims> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdminMiddleware` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct AdminMiddleware;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl AdminMiddleware {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdminMiddlewareService` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct AdminMiddlewareService<S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_admin_role` is never used
[INFO] [stdout]    --> src/middleware/admin_middleware.rs:221:10
[INFO] [stdout]     |
[INFO] [stdout] 221 | async fn check_admin_role(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthenticatedUser` is never constructed
[INFO] [stdout]   --> src/middleware/auth_middleware.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct AuthenticatedUser {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `HTTP_CLIENT` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | static HTTP_CLIENT: OnceLock<reqwest::Client> = OnceLock::new();
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `http_client` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn http_client() -> &'static reqwest::Client {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthentikClaims` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct AuthentikClaims {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LegacyClaims` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | struct LegacyClaims {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_authentik_token` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | async fn validate_authentik_token(token: &str) -> Option<AuthentikClaims> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdminMiddleware` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct AdminMiddleware;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl AdminMiddleware {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 64 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AdminMiddlewareService` is never constructed
[INFO] [stdout]   --> src/middleware/admin_middleware.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct AdminMiddlewareService<S> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_admin_role` is never used
[INFO] [stdout]    --> src/middleware/admin_middleware.rs:221:10
[INFO] [stdout]     |
[INFO] [stdout] 221 | async fn check_admin_role(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13m 01s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4, redis v0.24.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr] crater-edition-check all packages now at latest edition
[INFO] [stderr] crater-edition-check: all finished
[INFO] running `Command { std: "docker" "inspect" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb", kill_on_drop: false }`
[INFO] [stdout] 0e5c2b75eae540c4597f66448383d6098aebc88fdf179ed0bf4f0afd7fd6eebb
